package com.unitd.frame.mybatis.core.dao;

import java.util.List;

/**
 * @desc 自动生成代码时增加的公共数据库操作Dao接口
 * @filename ICrudDao.java
 * @copyright www.unitd.com
 * @author Hudan
 * @version 1.0
 * @date 2017/4/28
 */
public interface ICrudDao<Model, PK> extends IBaseDao<Model, PK> {

	/* 根据现实业务和表结构新增的方法,可以关联多表查询和处理 */
	/**
	 * @desc 获取单条数据
	 * @param id 主键ID
	 * @return
	 */
	Model findBy(PK id);

	/**
	 * @desc 查询数据列表，如果需要分页，请设置分页对象，如：entity.setPage(new Page<T>());
	 * @param entity 查询参数对象
	 * @return List<Model>
	 */
	List<Model> findListBy(Model entity);

	/**
	 * @desc 查询所有数据列表
	 * @param entity 查询参数对象
	 * @return List<Model>
	 */
	List<Model> findAllData(Model entity);

	/**
	 * @desc 根据参数信息,逻辑删除生成方案表对象信息
	 * @param entity 删除参数对象
	 */
	int deleteByDelFlag(Model entity);
}